From 8e791c33a0cba048f3ddede97b82aa8c8adfac13 Mon Sep 17 00:00:00 2001 From: oliskoli Date: Sat, 6 Sep 2008 21:44:44 +0000 Subject: [PATCH] route: Add new procedures 'route_disp_session' and 'track_disp_session'. --- gpsbabel/route.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gpsbabel/route.c b/gpsbabel/route.c index 3baa1a734..255129ad7 100644 --- a/gpsbabel/route.c +++ b/gpsbabel/route.c @@ -20,6 +20,7 @@ #include #include "defs.h" #include "grtcirc.h" +#include "session.h" static queue my_route_head; static queue my_track_head; @@ -71,6 +72,7 @@ route_head_alloc(void) rte_head->line_color.bbggrr = -1; rte_head->line_color.opacity = 255; rte_head->line_width = -1; + rte_head->session = curr_session(); return rte_head; } @@ -263,18 +265,45 @@ common_disp_all(queue *qh, route_hdr rh, route_trl rt, waypt_cb wc) } } +static void +common_disp_session(const session_t *se, queue *qh, route_hdr rh, route_trl rt, waypt_cb wc) +{ + queue *elem, *tmp; + QUEUE_FOR_EACH(qh, elem, tmp) { + const route_head *rhp; + rhp = (route_head *) elem; + if (rhp->session == se) { + if (rh) (*rh)(rhp); + route_disp(rhp, wc); + if (rt) (*rt)(rhp); + } + } +} + void route_disp_all(route_hdr rh, route_trl rt, waypt_cb wc) { common_disp_all(&my_route_head, rh, rt, wc); } +void +route_disp_session(const session_t *se, route_hdr rh, route_trl rt, waypt_cb wc) +{ + common_disp_session(se, &my_route_head, rh, rt, wc); +} + void track_disp_all(route_hdr rh, route_trl rt, waypt_cb wc) { common_disp_all(&my_track_head, rh, rt, wc); } +void +track_disp_session(const session_t *se, route_hdr rh, route_trl rt, waypt_cb wc) +{ + common_disp_session(se, &my_track_head, rh, rt, wc); +} + static void route_flush_q(queue *head) { -- 2.30.2